using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Rotempco.Core.ORM.Objects;

namespace Rotempco.Core.ORM.Interfaces
{
    public interface IDALReadOnly<TDomainObject, TPrimaryKey>
    {
        TDomainObject GetById(TPrimaryKey id, bool getDeleted = false);
        List<TDomainObject> GetAll(bool getDeleted = false);
        List<TDomainObject> GetByIds(List<TPrimaryKey> idList, bool getDeleted = false);
        //List<TDomainObject> GetBy(List<PropertyPair> propertyPairList, bool getDeleted = true, long? getFirstEntries = null, long? getLastEntries = null, List<NullablePair> nullablePairList = null);
        //TDomainObject GetByParameterName(string identifierParameter, object identifierParameterValue);
        TPrimaryKey DomainIdValue(TDomainObject domainObject);
        List<TDomainObject> GetDeleted();
    }
}
